C++运算符>> 重载,拜托了,明天交活了,可怜可怜我

来源:百度知道 编辑:UC知道 时间:2024/06/25 06:27:11
这个程序为什么不行,重载就是不行,不知道是哪里的问题,定义成友元也过不去,崩溃啊
#include<iostream>
#include<string>
#include<list>
#include<algorithm>
#include<fstream>
using namespace std;
/***************************图书类的声明**********************************/
class book
{
public:
book(string b_name="wo",string b_writer="men",string b_publisher="shi",string b_time="zhu"); //构造函数,用于初始化
void set_book(string new_n, string new_w, string new_p, string new_t); //重新设置图书四种属性【书名,作者,出版社,出版时间】
string show_bname();{ return b_name; } //显示书名
string show_wname(); {return b_writer; } //显示作者
string show_pname(){return b_publisher;}//显示出版社
string show_time(){return b_time;}//显示出版时间
private:
string b_name,b_writer,b_publisher,b_time; // 四种属性【书名,作者,出版社,出版时间】
};

修改部分如下:
string show_bname();{ return b_name; } //显示书名
string show_wname(); {return b_writer; } //显示作者
修改为:
string show_bname(){ return b_name; } //显示书名
string show_wname(){return b_writer; } //显示作者

outfile<<(*it);
修改为operator<<(*it,outfile);

修改后的完整代码如下:
#include<iostream>
#include<string>
#include<list>
#include<algorithm>
#include<fstream>
using namespace std;
/***************************图书类的声明**********************************/
class book
{
public:
book(string b_name="wo",string b_writer="men",string b_publisher="shi",string b_time="zhu"); //构造函数,用于初始化
void set_book(string new_n, string new_w, string new_p, string new_t); //重新设置图书四种属性【书名,作者,出版社,出版时间】
string show_bname(){ return b_name; } //显示书名